﻿/*===================================================
* CLR版本  : 4.0.30319.42000 
* 类名称   : EventProxy
* 文 件 名 : EventProxy 
* 类描述   :
* 创建人   : oream
* 创建时间 : 2018/3/12 0:43:20
* 修改人   : 
* 修改时间 :
* 版本： @version 1.0
=====================================================*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
  public class EventProxy : IEvent
  {
    Action<List<object>> proxy;
    List<object> list = new List<object>();

    public EventProxy(Action<List<object>> proxy)
    {
      this.proxy = proxy;
    }

    public void Handler()
    {
      this.list.Clear();
      this.proxy?.Invoke(this.list);
    }

    public void Handler(object obj)
    {
      this.list.Clear();
      this.list.Add(obj);
      this.proxy?.Invoke(this.list);
    }

    public void Handler(object obj1, object obj2)
    {
      this.list.Clear();
      this.list.Add(obj1);
      this.list.Add(obj2);
      this.proxy?.Invoke(this.list);
    }

    public void Handler(object obj1, object obj2, object obj3)
    {
      this.list.Clear();
      this.list.Add(obj1);
      this.list.Add(obj2);
      this.list.Add(obj3);
      this.proxy?.Invoke(this.list);
    }
  }
}
